﻿using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using WalkingTec.Mvvm.Core;
using System.Text.Json.Serialization;
using TyMES.Model;

namespace TyMES.Model.BaseInformation
{
    /// <summary>
    /// 产品BOM管理
    /// </summary>
	[Table("T_ProductBOM")]

    [Display(Name = "_Model.ProductBOM")]
    public class ProductBOM : TopBasePoco
    {
        [Display(Name = "_Model._ProductBOM._addTime")]
        [Comment("添加时间")]
        public string AddTime { get; set; }
        [Display(Name = "_Model._ProductBOM._assemblyConsumption")]
        [Comment("组件物料数量")]
        public string AssemblyConsumption { get; set; }
        [Display(Name = "_Model._ProductBOM._assemblyMaterialCode")]
        [Comment("组件物料编码")]
        [Required(ErrorMessage = "Validate.{0}required")]
        public string AssemblyMaterialCode { get; set; }
        [Display(Name = "_Model._ProductBOM._assemblyMaterialId")]
        [Comment("组件物料Id")]
        [Required(ErrorMessage = "Validate.{0}required")]
        public string AssemblyMaterialId { get; set; }
        [Display(Name = "_Model._ProductBOM._assemblyMaterialName")]
        [Comment("组件物料名称")]
        public string AssemblyMaterialName { get; set; }
        [Display(Name = "_Model._ProductBOM._assemblyMaterialRegex")]
        [Comment("组件物料正则规则")]
        public string AssemblyMaterialRegex { get; set; }
        [Display(Name = "_Model._ProductBOM._assemblyMaterialVersion")]
        [Comment("组件物料版本")]
        public string AssemblyMaterialVersion { get; set; }
        [Display(Name = "_Model._ProductBOM._assemblyUnitCode")]
        [Comment("组件物料单位编码")]
        public string AssemblyUnitCode { get; set; }
        [Display(Name = "_Model._ProductBOM._assemblyline")]
        [Comment("装配产线")]
        public string Assemblyline { get; set; }
        [Display(Name = "_Model._ProductBOM._autoMaterialDeduction")]
        [Comment("装配扣除额")]
        public int? AutoMaterialDeduction { get; set; }
        [Display(Name = "_Model._ProductBOM._editTime")]
        [Comment("编辑时间")]
        public string EditTime { get; set; }
        [Display(Name = "_Model._ProductBOM._factoryCode")]
        [Comment("工厂编码")]
        public string FactoryCode { get; set; }
        [Display(Name = "_Model._ProductBOM._field1")]
        [Comment("备用字段1")]
        public string Field1 { get; set; }
        [Display(Name = "_Model._ProductBOM._field2")]
        [Comment("备用字段2")]
        public string Field2 { get; set; }
        [Display(Name = "_Model._ProductBOM._field3")]
        [Comment("备用字段3")]
        public string Field3 { get; set; }
        [Display(Name = "_Model._ProductBOM._field4")]
        [Comment("备用字段4")]
        public string Field4 { get; set; }
        [Display(Name = "_Model._ProductBOM._field5")]
        [Comment("备用字段5")]
        public string Field5 { get; set; }
        [Display(Name = "_Model._ProductBOM._isDelete")]
        [Comment("是否删除")]
        public string IsDelete { get; set; }
        [Display(Name = "_Model._ProductBOM._materialCode")]
        [Comment("物料编码")]
        public string MaterialCode { get; set; }
        [Display(Name = "_Model._ProductBOM._materialId")]
        [Comment("物料Id")]
        public string MaterialId { get; set; }
        [Display(Name = "_Model._ProductBOM._materialName")]
        [Comment("物料名称")]
        public string MaterialName { get; set; }
        [Display(Name = "_Model._ProductBOM._materialRegex")]
        [Comment("物料正则")]
        public string MaterialRegex { get; set; }
        [Display(Name = "_Model._ProductBOM._materialSort")]
        [Comment("物料排序")]
        public string MaterialSort { get; set; }
        [Display(Name = "_Model._ProductBOM._materialVersion")]
        [Comment("物料版本")]
        public string MaterialVersion { get; set; }
        [Display(Name = "_Model._ProductBOM._operationCode")]
        [Comment("工序编码")]
        public string OperationCode { get; set; }
        [Display(Name = "_Model._ProductBOM._orderCode")]
        [Comment("工单编码")]
        public string OrderCode { get; set; }
        [Display(Name = "_Model._ProductBOM._orderId")]
        [Comment("工单Id")]
        public string OrderId { get; set; }
        [Display(Name = "_Model._ProductBOM._orderQty")]
        [Comment("工单数量")]
        public string OrderQty { get; set; }
        [Display(Name = "_Model._ProductBOM._productBomId")]
        [Comment("产品BOM编号")]
        public string ProductBomId { get; set; }
        [Display(Name = "_Model._ProductBOM._replaceMaterialList")]
        [Comment("替换物料表")]
        public string ReplaceMaterialList { get; set; }
        [Display(Name = "_Model._ProductBOM._replaces")]
        [Comment("替换用量")]
        public int? Replaces { get; set; }
        [Display(Name = "_Model._ProductBOM._retroactive")]
        [Comment("追溯方式")]
        public string Retroactive { get; set; }
        [Display(Name = "_Model._ProductBOM._routeBomCode")]
        [Comment("工艺BOM编码")]
        public string RouteBomCode { get; set; }
        [Display(Name = "_Model._ProductBOM._routeBomName")]
        [Comment("工艺BOM名称")]
        public string RouteBomName { get; set; }
        [Display(Name = "_Model._ProductBOM._routeNumber")]
        [Comment("工艺路线编码")]
        public string RouteNumber { get; set; }
        [Display(Name = "_Model._ProductBOM._scheduleNumber")]
        [Comment("排程号")]
        public string ScheduleNumber { get; set; }
        [Display(Name = "_Model._ProductBOM._shipRegularCheck")]
        [Comment("出货规则校验")]
        public string ShipRegularCheck { get; set; }
        [Display(Name = "_Model._ProductBOM._shopOrderOperationMaterialId")]
        [Comment("工单工序物料关联id")]
        public string ShopOrderOperationMaterialId { get; set; }

	}

}
